
// 用来记录被选中的告警信息的sid
var alertSidArr = [];
$(function () {
    // 初始化数据
    initData();
    // 动态调整列宽
    $("table").colResizable();
    // 按条件筛选告警信息
    $(".btn-primary").click(function () {
        selectByConditions();
    });
    // 添加事件
    $("#addEvent").click(function () {
        addEvent();
    });

});


function initData() {

    //$('#datetimepicker1, #datetimepicker2').datetimepicker({
    //    // minView: "month", //选择日期后，不会再跳转去选择时分秒
    //    language:  'zh-CN',
    //    //format: 'yyyy-mm-dd hh:ii:ss',
    //    format: 'yyyy-mm-dd',
    //    //todayBtn:  1,
    //    autoclose: 1
    //});
    //执行一个laydate实例
    laydate.render({
        elem: '#earliestTime'
    });
    laydate.render({
        elem: '#latestTime'
    });



    clearAllTable();
    alertSidArr = [];
    $("#keySearch").val("");
    $("#alertName").val("");
    $("#alertLevel").val("");
    $("#earliestTime").val(starttime);
    $("#latestTime").val(endtime);
    pageAlerts(1, 15,null,null,null,starttime,endtime);
    $("#alertTable").colResizable();
}

function selectByConditions() {
    clearAllTable();
    var keySearch = $("#keySearch").val().trim();
    var alertName = $("#alertName").val().trim();
    var alertLevel = $("#alertLevel").val().trim();
    var earliestTime = $("#earliestTime").val().trim();
    var latestTime = $("#latestTime").val().trim();
    pageAlerts(1, 15, keySearch, alertName, alertLevel, earliestTime, latestTime);
}

// 根据条件获取告警分页大小
function pageAlerts(pageNo, pageSize, keySearch, alertName, alertLevel, earliestTime, latestTime) {
    var columns = [{code:"alertSid", name:"checkBox"},
        //{code:"tempAlertName", name:"告警名称"},
        {code:"alertName", name:"告警名称"},
        {code:"triggerTimeStr", name:"告警触发时间"},
        {code:"alertType", name:"告警类型"},
        {code:"alertOwner", name:"告警所属者"},
        {code:"alertLevelInfo", name:"告警级别"},
        {code:"alertStateInfo", name:"告警状态"},
        {code:"alertCount", name:"告警数量"},
        {code:"eventSorts", name:"关联事件分类"},
        {code:{S:"查看日志",I:"查看更多告警", EV:"查看绑定事件",SE:"搜索"}, name:"操作"}];
    var param = {url:basePath + "/splunk/alert/getAlerts.do",divID:"alertTable",afterQuery:"adjustTable", message:"暂时没有告警信息",isAsync:true};
    var data = {"pageNo":pageNo, "pageSize":pageSize, keySearch:keySearch, "alertName":alertName, "alertLevel":alertLevel, "earliestTime":earliestTime, "latestTime":latestTime};
    easyQuery(columns, param, data);
}

// 告警分页加载完后，将选中的告警信息回显
function adjustTable() {

    $.each(alertSidArr, function (i, sid) {
        $("input:checkbox[name='pageItem']").each(function (i, input) {
            if ($(this).attr("nodeid") == sid) {
                $(this).prop("checked", "checked");
                $(this).parents("tr").addClass("timeoutTr");
            }
        })
    })

    // 给表格添加点击事件
    $("#alertTable tr").each(function (i, n) {
        if (i != 0) {
            //删除绑定事件
            //给checkbox添加阻止冒泡事件，三行代码就搞定了。
            $(this).find("input[type=checkbox]").click(function(e){
                var dom = $(this);
                manucheck(dom);
                e.stopPropagation();
            });

            //添加事件
            $(this).find("td[class!='operation']").click(function (e) {
                var dom = $(this).parents("tr").find("td[class='checkNot']").find("input");
                if ($(dom).is(":checked")) {
                    $(dom).prop("checked", false);
                }else{
                    $(dom).prop("checked", "checked");
                }
                manucheck(dom);
            });
            $(this).find("td[class='operation']").click(function () {
                var dom = $(this).parents("tr").find("td[class='checkNot color']").find("input");
                if ($(dom).is(":checked")) {
                    $(dom).prop("checked", false);
                }else{
                    $(dom).prop("checked", "checked");
                }
            });
        }
    })

}

function addEvent() {
    //if (alertSidArr.length == 0) {
    //    layer.msg("请先勾选告警信息", {time: 1500});
    //    return;
    //}
    layer.open({
        type: 2,
        area: ['800px', '480px'],
        maxmin: true,
        title:'添加事件',
        offset:"20px",
        shadeClose: true,
        content: basePath + "/splunk/alert/initAddEvent.do?alertSids=" + alertSidArr.join(",")
    });

}

// table页 第一列单选框触发事件
function manucheck(input) {
    // 将选中的sid放到全局中
    if ($(input).is(":checked")){
        alertSidArr.push($(input).attr("nodeid"));
        $(input).parents("tr").addClass("timeoutTr");
    }else {
        var sid = $(input).attr("nodeid");
        alertSidArr = $.grep(alertSidArr, function (value) {
            return value != sid
        });
        $(input).parents("tr").removeClass("timeoutTr");
    }
}

// 全选按钮
function afterSelectAll(input) {
    if ($(input).is(":checked")) {
        $("#alertTable tr").each(function (i, tr) {
            if (i != 0) {
                alertSidArr.push($(this).attr("nodeid"));
                $(this).addClass("timeoutTr");
            }
        })
    }else {
        $("#alertTable tr").each(function (i, tr) {
            if (i != 0) {
                $(this).removeClass("timeoutTr");
            }
        })
    }
}

// function ev_alertTable(btn) {
//     var alertSid = $(btn).parents("tr").attr("nodeid");
//     layer.open({
//         type: 2,
//         area: ['800px', '480px'],
//         maxmin: true,
//         title:'事件列表',
//         offset:"20px",
//         shadeClose: true,
//         content: basePath + "/splunk/alert/initAlertEvents.do?alertSid=" + alertSid
//     });
// }
//
// function see_alertTable(btn) {
//     $("#logTable").empty();
//     $("#detailsTable").empty();
//     var checkbox = $(btn).parents("tr").find("td > input[type='checkbox']");
//     if (checkbox.is(":checked")) {
//         $(checkbox).prop("checked", false);
//     }else {
//         $(checkbox).prop("checked", true);
//     }
//     var alertSid = $(btn).parents("tr").attr("nodeid");
//     $.ajax({
//         url:basePath + "/splunk/alert/initAlertLogs.do",
//         type:"post",
//         dataType:"json",
//         data:{
//             alertSid:alertSid
//         },
//         success:function (json) {
//             var code = json.code;
//             if (code == '200'){
//                 var flag = json.flag;
//                 var alertData = json.alertData;
//                 if (flag == true){
//                     var logSource = json.logSource;
//                     showEvents("logTable", logSource, alertData); // 展现事件
//                 }else{
//                     var columns = json.columns;
//                     showTables(columns, alertData); // 展现表格
//                 }
//
//                 var eventSource = json.eventSource;
//                 var eventData = json.eventData;
//                 if (eventData != null && eventSource != "") {
//                     showEvents("detailsTable", eventSource, eventData);
//                 }
//
//             }else if (code == '201'){
//                 var errorMsg = json.errorMessage;
//                 layer.msg(errorMsg, {time: 1500});
//             }
//         }
//     })
// }
//
// function rela_alertTable(btn) {
//     clearAll();
//     var alertSid = $(btn).parents("tr").attr("nodeid");
//     var alertName = $("#alertName").val().trim();
//     var alertLevel = $("#alertLevel").val().trim();
//     var earliest = $("#earliest").val().trim();
//     var latest = $("#latest").val().trim();
//     var columns = [{code:"alertSid", name:"checkBox"},
//         {code:"alertName", name:"告警名称"},
//         {code:"triggerTimeStr", name:"告警触发时间"},
//         {code:"alertType", name:"告警类型"},
//         {code:"alertOwner", name:"告警所属者"},
//         {code:"alertLevelInfo", name:"告警级别"},
//         {code:"alertStateInfo", name:"告警状态"},
//         {code:"eventSorts", name:"关联事件名称"},
//         {code:{S:"查看日志", EV:"查看绑定事件", SE:"搜索"}, name:"操作"}];
//     var param = {url:basePath + "/splunk/alert/getMoreAlerts.do",divID:"moreAlertTable",afterQuery:"adjustMoreTable", message:"暂时没有告警信息"};
//     var data = {"pageNo":1, "pageSize":15, alertSid:alertSid, alertName:alertName, alertLevel:alertLevel, earliest:earliest, latest:latest};
//     easyQuery(columns, param, data);
// }
//
// function adjustMoreTable() {
//     $.each(alertSidArr, function (i, sid) {
//         $("input:checkbox[name='pageItem']").each(function (i, input) {
//             if ($(this).attr("nodeid") == sid) {
//                 $(this).prop("checked", "checked");
//                 $(this).parents("tr").addClass("timeoutTr");
//             }
//         })
//     })
//
//     // 给表格添加点击事件
//     $("#moreAlertTable tr").each(function (i, n) {
//         if (i != 0) {
//             $(this).find("td[class!='operation']").click(function () {
//                 var dom = $(this).parents("tr").find("td[class='checkNot']").find("input");
//                 if ($(dom).is(":checked")) {
//                     $(dom).prop("checked", false);
//                 }else{
//                     $(dom).prop("checked", "checked");
//                 }
//                 manucheck(dom);
//             });
//             $(this).find("td[class='operation']").click(function () {
//                 var dom = $(this).parents("tr").find("td[class='checkNot']").find("input");
//                 if ($(dom).is(":checked")) {
//                     $(dom).prop("checked", false);
//                 }else{
//                     $(dom).prop("checked", "checked");
//                 }
//             });
//         }
//     })
// }
//
// function showEvents(btn, logSource, alertData){
//     var div = '<div class="control-title">' +
//                 '<div class="title_left"> ' +
//                 '<span> ' +
//                 '   <svg class="icon" aria-hidden="true"> ' +
//                 '       <use xlink:href="#icon-biaoti"></use> ' +
//                 '   </svg> ' +
//                 '</span>' +
//                 '日志来源：' + logSource+
//                 '</div>' +
//                '</div>';
//     div += '<div class="content_table"> ' +
//         '   <table id="logTable1" class="table table-striped table-bordered table-hover"> ' +
//         '   <thead> ' +
//         '       <tr> ' +
//         '           <th>详细日志数据</th> ' +
//         '       </tr> ' +
//         '   </thead> ' +
//         '   <tbody>';
//
//     $.each(alertData, function (i, data) {
//         div+='<tr><td>' + data.alertData + "</td></tr>";
//     });
//     div += '</tbody></table></div>';
//     $("#" + btn).append(div);
// }
//
// function showTables(columns, alertData) {
//     var div = '<div class="control-title">' +
//         '<div class="title_left"> ' +
//         '<span> ' +
//         '   <svg class="icon" aria-hidden="true"> ' +
//         '       <use xlink:href="#icon-biaoti"></use> ' +
//         '   </svg> ' +
//         '</span>' +
//         '详细数据'+
//         '</div>' +
//         '</div>' +
//         '<div class="content_table"> ' +
//         '   <table id="logTable1" class="table table-striped table-bordered table-hover "> ' +
//         '   <thead> ' +
//         '       <tr>';
//     $.each(alertData, function (i, data) {
//         if (i == 0) {
//             $.each(data.map, function (key, value) {
//                 div += '<th>' + key + '</th>';
//             });
//             div += '</tr></thead><tbody><tr>';
//         }
//         $.each(data.map, function (key, value) {
//             div+='<td>' + value + '</td>';
//         })
//         div += "</tr>";
//     });
//     div += '</tbody></table></div>';
//     $("#logTable").append(div);
// }
//
//
// // ----------------------------moreAlertTable----------------------
// function see_moreAlertTable(btn){
//     see_alertTable(btn);
// }
// function ev_moreAlertTable(btn) {
//     ev_alertTable(btn);
// }
//
// // 清空三个div
// function clearAll() {
//     $("#moreAlertTable").empty();
//     $("#logTable").empty();
//     $("#detailsTable").empty();
// }




